4 Lezione 5 -04-10
- Consideriamo ora un modello bag of words: considero il numero di occorrenze di un termine in un documento. Non ho ancora l’ordine della parole e quindi non posso ancora fare query posizionali.
- tf_{t, d}: la term frequency tf_{t,d} di un termine t in un documento d è definito come il numero di volte che t compare in d. Potremmo usare direttamente questo valore grezzo per dare uno score ai documenti, ma la rilevanza non cresce in maniera proporzionale con la frequenza del termine, c’è bisogno di smorzare la crescita della rilevanza al crescere della frequenza di un termine in un documento.
- Usiamo il sub-linear tf scaling: w_{t,d} = \left\{ \begin{array}{ll} 1 + log_{10}\; tf_{t, d} & \text{if } tf_{t, d} > 0 \\ 0 & altrimenti \\ \end{array} \right.
- Lo score per una coppia query-documento è dato dalla sommatoria dei pesi logaritmici sui termini t in comune tra la query ed il documento:score(d, q)= \sum_{t \in q \cap d} w_{t, d}La base del logaritmo può essere scelta a piacere^1 perchè sarà un valore costante durante i nostri calcoli. Con base dieci si otterrebbe che uno score pari a 1000 con il raw term frequency diventa 4 con il log term frequency.
- Lo score è zero solo se nessun termine della query è presente nel documento
- La term frequency è una misura di importanza locale, ovvero riguarda ogni termine per il singolo documento
- Inverse Document Frequency: introduciamo il concetto di termine raro con l’idf: \log \dfrac{N}{df_t}dove N è il numero di documenti nella collezione e df_t è il numero di documenti in cui il termine compare. Usiamo il logaritmo sempre per smorzare l’effetto.
- L’indice di variabilità di idf è tra 0 e log N
- Termini frequenti come le stopword avranno df_t \simeq N, e pertanto idf \simeq 0, termini rari invece avranno df_t \simeq 0 e quindi idf \simeq N.
- L’IDF è una misura di importanza globale, ovvero misura quanto un termine è importante nella collezione dei documenti
- L’indice di variabilità di idf è tra 0 e log N
- TFxIDF weighting: w_{t, d} = (1 + log \; tf_{t, d}) \; \times \; log\left(\dfrac{N}{df_t}\right)
- Miglior schema di peso conosciuto
- Incrementa al numero delle occorrenze di un termine nei documenti
- Incrementa con la rarità del termine
- Moltiplico TF e IDF perchè così se il termine è molto frequente il suo peso sarà quasi nullo
- Score di un documento per una query: \displaystyle\sum_{t \in q \cap d} w_{t, d}
- Con questa metrica ora ogni documento è rappresentato da un vettore di numeri reali in uno spazio vettoriale grande quanto il numero di parole presenti nella collezione
- I termini sono gli assi dello spazio
- I documenti sono i punti o vettori dello spazio
- Questi vettori sono sparsi perchè su molti assi sono nulli, i documenti contengono un subset delle parole totali di tutta la collezione
- Rappresentiamo anche le query in questo spazio vettoriale, e rankiamo i documenti a seconda della loro prossimità alla query in questo spazio vettoriale
^1 Formula per il cambio di base: log_b x = \dfrac{log_a x}{log_a b}